//
// Created by 86138 on 2025/5/25.
//

#include "SString.h"

Status StrAssign(SString &T, char *chars) {
    if (strlen(chars) > MAXLEN) return ERROR;

    for (int i = 1; i <= strlen(chars); i++) {
        T.ch[i] = *(chars + i - 1);
    }
    T.length = strlen(chars);
    return OK;
}

void StrPrint(SString T) {
    for (int i = 1; i <= T.length; i++) {
        printf("%c", T.ch[i]);
    }
    printf("\n");
}

int Index_BF(SString S, SString T, int pos) {
    int i = pos, j = 1;
    while (i <= S.length && j <= T.length) {
        if (S.ch[i] == T.ch[j]) {
            i++;
            j++;
        } else {
            i = i - j + 2;
            j = 1;
        }
    }

    if (j > T.length) return i - T.length;
    else return 0;
}

//int main() {
//    system("chcp 65001");
//    SString S, T;
//    StrAssign(S, "duckinarowjumpthroughhoops");
//    StrAssign(T, "ducc");
//    int result = Index_BF(S, T, 1);
//    if (result == 0) {
//        printf("没找到\n");
//    } else {
//        printf("找到了，在位置%d\n", result);
//    }
//
//    return 0;
//}
